/*
* 给你一个有序数组 nums ，请你 原地 删除重复出现的元素，使得出现次数超过两次的元素只出现两次 ，返回删除后数组的新长度。

不要使用额外的数组空间，你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

来源：力扣（LeetCode）
链接：https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
*
* */
fun main() {
//    val nums = intArrayOf(1, 1, 1, 1, 2, 2, 3)
//    val nums = intArrayOf(1, 1, 1, 2, 2, 3)
    val nums = intArrayOf(0, 0, 1, 1, 1, 1, 2, 3, 3)
    println(e4(nums))
    println(nums.contentToString())
}

//1111223->1122223->
//0, 0, 1, 1, 1, 1, 2, 3, 3->001121233->001122233
fun e4(nums: IntArray): Int {
    var j = 2
    for (i in 2 until nums.size) {
        if (nums[j - 2] != nums[i]) {
            nums[j++] = nums[i]
        }
    }
    return j
}